package com.ad.payload.exception;

import java.util.HashMap;
import java.util.Map;

/**
 * 异常编码和消息的定义。
 *
 */
public class ErrorMapping {

	public static String getReferenceCode() {
		String threadName = Thread.currentThread().getName();
		String referenceCode = null;
		if (threadName.length() > 8) {
			referenceCode = threadName.substring(0, 8);
		} else {
			referenceCode = threadName;
		}
		return referenceCode;
	}

	// 错误代码定义为6位
	/** 参数错误用5xxxxx */
	/**
	 * 需要使用GENERAL_PARAMETER_EXCEPTION请先提出来团队讨论确定。
	 */
	public static final int GENERAL_PARAMETER_EXCEPTION = 500000;
	public static final int PARAMETER_FORMAT_EXCEPTION = 500001;

	/** 服务错误用6xxxxx */
	/**
	 * 需要使用GENERAL_SERVICE_EXCEPTION请先提出来团队讨论确定。
	 */

	public static final int GENERAL_SERVICE_EXCEPTION = 600000;
	//token非法
	public static final int ACCESS_TOKEN_INVALID = 600001;
	//token过期
	public static final int ACCESS_TOKEN_EXPIRED = 600002;
	//没有接口权限
	public static final int PERMISSION_DENIED = 600003;
	//未登录
	public static final int NO_LOGIN = 600004;

	/** 已经存在相同的数据记录. */
	public static final int DB_DUPLICATE_KEY = 610001;
	/** 已经存在相同的数据记录. */
	public static final int DB_READ_ONLY = 610002;
	/** 数据库操作异常 */
	public static final int DB_OPERATION_EXCEPTION = 610003;

	/**
	 * 需要使用GENERAL_EXCEPTION请先提出来团队讨论确定。
	 */
	public static final int GENERAL_EXCEPTION = 900000;

	public static final Map<Integer, String> MESSAGE_MAP = new HashMap<Integer, String>();
	static {
		MESSAGE_MAP.put(GENERAL_PARAMETER_EXCEPTION, "参数错误");
		MESSAGE_MAP.put(PARAMETER_FORMAT_EXCEPTION, "参数格式错误");

		MESSAGE_MAP.put(GENERAL_SERVICE_EXCEPTION, "服务处理异常");

		MESSAGE_MAP.put(GENERAL_EXCEPTION, "基础错误");
		MESSAGE_MAP.put(ACCESS_TOKEN_INVALID,"存取令牌校验错误");
		MESSAGE_MAP.put(ACCESS_TOKEN_EXPIRED,"存取令牌过期");
		MESSAGE_MAP.put(NO_LOGIN,"请先登录系统");
		MESSAGE_MAP.put(PERMISSION_DENIED,"当前访问的接口不存在或没有权限");

		MESSAGE_MAP.put(DB_DUPLICATE_KEY, "已经存在相同的数据记录");
		MESSAGE_MAP.put(DB_READ_ONLY, "数据库配置权限是只读");
	}

}
